op {
  name: "SparseAdd"
  input_arg {
    name: "a_indices"
    type: DT_INT64
  }
  input_arg {
    name: "a_values"
    type_attr: "T"
  }
  input_arg {
    name: "a_shape"
    type: DT_INT64
  }
  input_arg {
    name: "b_indices"
    type: DT_INT64
  }
  input_arg {
    name: "b_values"
    type_attr: "T"
  }
  input_arg {
    name: "b_shape"
    type: DT_INT64
  }
  input_arg {
    name: "thresh"
    type_attr: "Treal"
  }
  output_arg {
    name: "sum_indices"
    type: DT_INT64
  }
  output_arg {
    name: "sum_values"
    type_attr: "T"
  }
  output_arg {
    name: "sum_shape"
    type: DT_INT64
  }
  attr {
    name: "T"
    type: "type"
    allowed_values {
      list {
        type: DT_FLOAT
        type: DT_DOUBLE
        type: DT_INT64
        type: DT_INT32
        type: DT_UINT8
        type: DT_UINT16
        type: DT_INT16
        type: DT_INT8
        type: DT_COMPLEX64
        type: DT_COMPLEX128
        type: DT_QINT8
        type: DT_QUINT8
        type: DT_QINT32
        type: DT_HALF
      }
    }
  }
  attr {
    name: "Treal"
    type: "type"
    allowed_values {
      list {
        type: DT_FLOAT
        type: DT_DOUBLE
        type: DT_INT32
        type: DT_INT64
        type: DT_UINT8
        type: DT_INT16
        type: DT_INT8
        type: DT_UINT16
        type: DT_HALF
      }
    }
  }
}
op {
  name: "SparseAdd"
  input_arg {
    name: "a_indices"
    type: DT_INT64
  }
  input_arg {
    name: "a_values"
    type_attr: "T"
  }
  input_arg {
    name: "a_shape"
    type: DT_INT64
  }
  input_arg {
    name: "b_indices"
    type: DT_INT64
  }
  input_arg {
    name: "b_values"
    type_attr: "T"
  }
  input_arg {
    name: "b_shape"
    type: DT_INT64
  }
  input_arg {
    name: "thresh"
    type_attr: "Treal"
  }
  output_arg {
    name: "sum_indices"
    type: DT_INT64
  }
  output_arg {
    name: "sum_values"
    type_attr: "T"
  }
  output_arg {
    name: "sum_shape"
    type: DT_INT64
  }
  attr {
    name: "T"
    type: "type"
    allowed_values {
      list {
        type: DT_FLOAT
        type: DT_DOUBLE
        type: DT_INT64
        type: DT_INT32
        type: DT_UINT8
        type: DT_UINT16
        type: DT_INT16
        type: DT_INT8
        type: DT_COMPLEX64
        type: DT_COMPLEX128
        type: DT_QINT8
        type: DT_QUINT8
        type: DT_QINT32
        type: DT_HALF
        type: DT_UINT32
        type: DT_UINT64
      }
    }
  }
  attr {
    name: "Treal"
    type: "type"
    allowed_values {
      list {
        type: DT_FLOAT
        type: DT_DOUBLE
        type: DT_INT32
        type: DT_INT64
        type: DT_UINT8
        type: DT_INT16
        type: DT_INT8
        type: DT_UINT16
        type: DT_HALF
        type: DT_UINT32
        type: DT_UINT64
      }
    }
  }
}
op {
  name: "SparseAdd"
  input_arg {
    name: "a_indices"
    type: DT_INT64
  }
  input_arg {
    name: "a_values"
    type_attr: "T"
  }
  input_arg {
    name: "a_shape"
    type: DT_INT64
  }
  input_arg {
    name: "b_indices"
    type: DT_INT64
  }
  input_arg {
    name: "b_values"
    type_attr: "T"
  }
  input_arg {
    name: "b_shape"
    type: DT_INT64
  }
  input_arg {
    name: "thresh"
    type_attr: "Treal"
  }
  output_arg {
    name: "sum_indices"
    type: DT_INT64
  }
  output_arg {
    name: "sum_values"
    type_attr: "T"
  }
  output_arg {
    name: "sum_shape"
    type: DT_INT64
  }
  attr {
    name: "T"
    type: "type"
    allowed_values {
      list {
        type: DT_FLOAT
        type: DT_DOUBLE
        type: DT_INT64
        type: DT_INT32
        type: DT_UINT8
        type: DT_UINT16
        type: DT_INT16
        type: DT_INT8
        type: DT_COMPLEX64
        type: DT_COMPLEX128
        type: DT_QINT8
        type: DT_QUINT8
        type: DT_QINT32
        type: DT_HALF
        type: DT_UINT32
        type: DT_UINT64
        type: DT_BFLOAT16
      }
    }
  }
  attr {
    name: "Treal"
    type: "type"
    allowed_values {
      list {
        type: DT_FLOAT
        type: DT_DOUBLE
        type: DT_INT32
        type: DT_INT64
        type: DT_UINT8
        type: DT_INT16
        type: DT_INT8
        type: DT_UINT16
        type: DT_HALF
        type: DT_UINT32
        type: DT_UINT64
        type: DT_BFLOAT16
      }
    }
  }
}
op {
  name: "SparseAdd"
  input_arg {
    name: "a_indices"
    type: DT_INT64
  }
  input_arg {
    name: "a_values"
    type_attr: "T"
  }
  input_arg {
    name: "a_shape"
    type: DT_INT64
  }
  input_arg {
    name: "b_indices"
    type: DT_INT64
  }
  input_arg {
    name: "b_values"
    type_attr: "T"
  }
  input_arg {
    name: "b_shape"
    type: DT_INT64
  }
  input_arg {
    name: "thresh"
    type_attr: "Treal"
  }
  output_arg {
    name: "sum_indices"
    type: DT_INT64
  }
  output_arg {
    name: "sum_values"
    type_attr: "T"
  }
  output_arg {
    name: "sum_shape"
    type: DT_INT64
  }
  attr {
    name: "T"
    type: "type"
    allowed_values {
      list {
        type: DT_FLOAT
        type: DT_DOUBLE
        type: DT_INT32
        type: DT_UINT8
        type: DT_INT16
        type: DT_INT8
        type: DT_COMPLEX64
        type: DT_INT64
        type: DT_QINT8
        type: DT_QUINT8
        type: DT_QINT32
        type: DT_BFLOAT16
        type: DT_UINT16
        type: DT_COMPLEX128
        type: DT_HALF
        type: DT_UINT32
        type: DT_UINT64
      }
    }
  }
  attr {
    name: "Treal"
    type: "type"
    allowed_values {
      list {
        type: DT_FLOAT
        type: DT_DOUBLE
        type: DT_INT32
        type: DT_UINT8
        type: DT_INT16
        type: DT_INT8
        type: DT_INT64
        type: DT_BFLOAT16
        type: DT_UINT16
        type: DT_HALF
        type: DT_UINT32
        type: DT_UINT64
      }
    }
  }
}
